#ifndef __DAISY_FRAME_WORK_BASE_THEATER_H__
#define __DAISY_FRAME_WORK_BASE_THEATER_H__
#include "FrameworkBaseConfig.h"

#include "Entity.h"

namespace DAISY{
class TheaterImpl;
template class _DaisyFrameworkBaseExport boost::scoped_ptr<TheaterImpl>;
class _DaisyFrameworkBaseExport Theater :public Entity
{
public:
	Theater(const std::string & name);
	virtual ~Theater(void);
	void addDirector(const std::string & type, const std::string & name, NameValueList * parameter = NULL);
	void activeDirector(const std::string & name);
protected:
	virtual void doAddDirector(const std::string & type, const std::string & name, NameValueList * parameter = NULL);
	virtual void doActiveDirector(DirectorPtr director);
	boost::scoped_ptr<TheaterImpl> _impl;
};

}
#endif